package com.niiwoo.civet.mobile.vo.response.bill;

import com.niiwoo.tripod.web.vo.PageResponseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * Created by DELL on 2018/10/29.
 */
@Getter
@Setter
@ApiModel("分页查询用户账单列表返回对象[按日期]")
public class PageUserBillForDateResponse extends PageResponseVO<PageUserBillForDateResponse.MonthData> implements Serializable {

    @ApiModelProperty("账单总金额描述")
    private String totalAmountDesc;

    @Getter
    @Setter
    @ApiModel("账单列表按月统计monthData")
    public class MonthData{
        @ApiModelProperty("账单所属月份(yyyyMM)")
        private String yearMonth;

        @ApiModelProperty("月度总金额集合")
        private List<AmountItem> monthAmountItems;

        @ApiModelProperty("账单数据billData集合")
        private List<BillData> billDatas;
    }


    @Getter
    @Setter
    @ApiModel("账单数据billData")
    public class BillData{
        @ApiModelProperty("账单id")
        private Long billId;

        @ApiModelProperty("账单头像")
        private String billHeadImgUrl;

        @ApiModelProperty("账单标题")
        private String billTitle;

        @ApiModelProperty("账单金额")
        private BigDecimal amount;

        @ApiModelProperty("账单状态, 1:处理中, 2:交易成功, 3:交易关闭")
        private Byte status;

        @ApiModelProperty("账单状态描述")
        private String statusDesc;

        @ApiModelProperty("账单时间")
        private Date billTime;

        @ApiModelProperty("账单所在月份yyyyMM")
        private String yearMonth;

    }


    @ApiModel("资金项amountItem")
    @Getter
    @Setter
    public class AmountItem {
        @ApiModelProperty("资金名称")
        private String name;
        @ApiModelProperty("金额(元)")
        private BigDecimal amount;
    }

}


